package mbg;

import mbg.Demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;

/**
 * @Description
 * @Author luyanpu
 * @Date 2023/6/26
 */
@RestController
public class DownLoadController {


    @GetMapping("/download_mbg")
    public void downLoad(HttpServletResponse response) throws IOException {
        /** 1.创建临时文件夹 */
        File temDir = new File("./src/main/java/output");
        System.out.println(temDir.exists());
        if (!temDir.exists()) {
            temDir.mkdirs();
        }
        /** 2.设置response的header */
        response.setContentType("application/zip");
        response.setHeader("Content-Disposition", "attachment; filename=output.zip");
        /** 4.调用工具类，下载zip压缩包 */
        // 这里我们不需要保留目录结构
        Demo.toZip(temDir.getPath(), response.getOutputStream(), true);
        /** 5.删除临时文件和文件夹 */

        dirFile(temDir);
    }

    /**
     * 循环删除文件夹里的文件 直接删除删除不成功
     */
    private void dirFile(File file){
        File[] listFiles = file.listFiles();
        for (int i = 0; i < listFiles.length; i++) {
            if(listFiles[i].isDirectory()){
                dirFile(listFiles[i]);
            }
            listFiles[i].delete();
        }
    }
}
